接下來我們將介紹如何串接各種不同通訊軟體的 Contact Point。
Slack 是許多組織都使用的辦公通訊軟體,Slack 的共同創辦人 Stewart Butterfield 也是網路相簿服務 Flickr 的創辦人之一。Flickr 在 2005 年出售給 Yahoo 後,Butterfield 開始計畫開發遊戲產品,並於 2009 年建立了 Tiny Speck,推出網頁遊戲 Glitch。儘管獲得了 1500 萬美元的投資,但最終因遊戲性不佳等原因而失敗。之後,Tiny Speck 將目標轉向商用軟體,並開發通訊軟體 Slack,於 2020 年被知名 CRM 公司 Salesforce 以 277 億美元收購。
Glitch 圖,圖片來源 TechCrunch
Slack Contact Point 可以用 Slack App 發送訊息,分為以下兩種方式:
Slack 通知範例
App 建立與設定方式如下:
chat:write.public
權限,讓 Bot 可以在所有 Channel 發送訊息。如果要附加圖片,則需要同時新增 files:write
權限。更新 Scope 後需重新安裝該 App 才能生效。如需搭配 Panel 截圖,在預設的圖片處理機制下僅能使用 Bot token,且需要正確設定權限並將 App 加入發送目標的 Channel 中。但由於 Slack 的檔案上傳 API 近期變更,Grafana 最新版本尚未更新,因此此功能暫時失效,相關 PR 正在處理中。
完整可上傳圖片與發送訊息的 Scope
預設的 Template 會將 URL 連結完整列出,如需更簡潔的顯示方式,可參考 Slack Message 的 Formatting。例如使用 <http://www.example.com|This message is a link>
,即可顯示為乾淨的超連結。
在訊息內使用 Slack 的 Format
訊息內容的呈現
Line 是由韓國 Naver 集團的日本子公司開發,於 2011 年 6 月發布的通訊軟體,初衷是為了改善當年 311 大地震中家人與朋友之間通訊困難的問題,並設計了「已讀」功能,讓發送者知道對方是否平安並已接收到訊息。2019 年,Naver 與持有 Yahoo! Japan 的 SoftBank 將 Line 與 Yahoo! Japan 合併為 LY Corporation 單一個公司。
根據 NCC 112 年通訊傳播市場報告統計,台灣民眾擁有 Line 帳號的比率高達 97.7%。雖然在辦公中使用 Line 並不明智,但有時仍需串接 Line 通知。在 Grafana 中可以使用 Line Notify 進行串接。
Line 通知範例
Notify 的設定步驟如下:
Telegram 是於 2013 年推出的通訊軟體,2024 年 7 月全球活躍人數已達 9.5 億,主打高度安全性並提供豐富的 API 和開發自由度。Telegram 的創辦人為俄羅斯的杜洛夫兄弟,他們先前創辦了俄羅斯最大的社群軟體 VKontakte,但因社群軟體的高度政治風險,最終被迫出售股份,並轉而開發 Telegram 並離開俄羅斯。
Telegram 通知範例
Telegram 有完整的 Bot 功能,設定步驟如下:
bot
作為結尾。https://web.telegram.org/a/#-4266674385
,Chat ID 為 -4266674385
。Telegram Contact Point 支援上傳圖片功能,開啟截圖設定後將自動附加在訊息中。
如需對通知內容進行客製化,可使用 HTML 格式設定文字,詳細說明請參考 官方文件。
Telegram 支援 HTML 格式顯示文字
也可以設定 HTML 的 <a>
標籤連結
如果設定的 URL 可以被 Telegram 解析,就會顯示為超連結;若是 localhost 則會被視為無效連結而無法連結。
Alert 範例網址:https://github.com/blueswen/grafana-zero-to-hero/tree/main/06-alerting/01-alert-rules
因 Contact Point 需設定大量 Token 參數,可使用前一篇的範例設定,再自行建立 Contact Point,複製 Provisioning 的 Alert 後套用新的 Contact Point。